#include "PlanoZ.h"

const Objeto_3D* PlanoZ::Intercepta( Raio r_vis, float* t) const
{
  float x,y;

  *t = (a - r_vis.Z0()) / r_vis.Dz();

  if (*t<0)
     return this;

  x = r_vis.X0() + (*t) * r_vis.Dx();
  if (INSIDE(x,bmin,bmax))
  {
    y = r_vis.Y0() + (*t)*r_vis.Dy();
    if (INSIDE(y,cmin,cmax))
        return this;
  }
  *t = -1.0;
  return this;
}

TexturePoint PlanoZ::pontoTextura(const Ponto_3D& ponto) const
{
    return TexturePoint( (ponto.X() - bmin)/(bmax-bmin) ,
                         (ponto.Y() - cmin)/(cmax-cmin) );
}
